﻿#region Using directives

using System;
using System.Collections.Generic;
using System.Text;

#endregion

namespace Weazel.Badger.Vhdl.Types
{
  public abstract class TypedComponent
  {
    private int width;
    private bool signed;
    private bool resolved;

    private Type actualType;
    private TypeSet possibleTypes;

    #region Properties
    protected TypeSet PossibleTypes
    {
      get
      {
        return possibleTypes;
      }

      set
      {
        possibleTypes = value;
      }
    }    
            
    public Type ActualType
    {
      get
      {
        return actualType;
      }

      set
      {
        actualType = value;
      }
    }
    #endregion

    public abstract TypeSet GetPossibleTypes();
    public abstract void SetActualType(Type type);

    public TypedComponent()
    {
    }
  }
}
